Decreasing costs for computing devices and computing components has led to their widespread use in many products and environments. These environments with many computing devices are referred to as pervasive computing environments. With the rapid growth of pervasive computing environments, computer-based reasoning systems are increasingly being deployed to help manage these environments and distill useful information from them. These reasoning systems process a data set that is collected from a range of data sources within the pervasive computing environment, and the reasoning system infers high-level conclusions from this data set. The conclusions are made available and are used for further appropriate actions to be taken without human intervention. For example, a real-time reasoning system can process a stream of data that constantly is being received, and the reasoning system needs to draw and expose conclusions in the shortest time possible to keep up with the constant update of the data stream.
A variety of reasoning mechanisms and a variety of combinations of these reasoning mechanisms have been employed by reasoning systems including, Fuzzy logic, Bayesian logic, rules-based reasoning, case-based reasoning, and semantic reasoning. Some of these reasoning mechanisms consist roughly of a rule set and a mechanism for applying this rule set to raw data. Some other reasoning mechanisms such as semantic reasoning use semantic web technologies, to pose a structured data format that contains restrictions on what it is possible to do with the input data.
The performance of a reasoning system varies significantly depending on many factors. One of them is that the reasoning mechanisms constituting the system have very different characteristics in terms of processing power and memory capacity, which also depends on the processor and other computing resources available. Another notable factor is the availability of data from the data sources. Inconsistent update frequencies from data sources or broken connectivity between the data sources and the reasoning system can be the cause of unavailability, intermittent availability or delayed availability of data for a reasoning system.
One example environment for reasoning systems is machine-to-machine environments. In machine-to-machine environments, a group of simple computing devices are able to communicate through a communication network. This results in data streams that are generated at many different machines as raw data streams. These data streams are brought together to make sense of these data streams so that appropriate actions can be promptly and automatically taken by other machines in the network. However, the ability to make use of and act on the raw data is constrained by the heave resource requirements at a central processing system that collect the raw data.